Business enterprises use computer systems with applications to monitor and process business activities and transactions. For example, an online store selling purses may use a business application to receive online sales orders, an inventory application to manage the purses in the inventory and communicate with the supplier, or other applications or services to create online interfaces. Business entities handling complex transactions and activities may employ distributed computer systems. For example, financial institutions which handle credit card and ATM transactions may receive thousands of transactions every ten minutes.
Each of the various activities or transactions may be treated as a single event by business applications or software. For example, in the online purse boutique store, a user login session may be treated as an event and a consumer swiping her credit card at a shopping mall may be treated as another event by the financial institutions. While each single event may be significant, analysis of each single event may not be beneficial. Instead, business entities or other organizations may be interested in occurrences of multiple events according to a specific pattern. Such accumulated information from the specific pattern represents a “higher level event” and is beneficial and meaningful for further analysis.
For example, single events, such as a user's login session of an online store, placing an item in her shopping cart, or the like may be trivial. However, the online store may be interested in a specific pattern of (1) user login, (2) place item to the shopping cart, (3) proceed to check out, and (4) no further action from the user. Such pattern may indicate that the user has abandoned her shopping cart because (a) she is not pleased with the shipping and handling charges, (b) she decides to compare prices of the item before purchasing, (c) the user clicks the “Purchase” button, but the handling server did not receive the request, or other reasons.
Current systems process events and attempt to match events to particular interested patterns. For example, in identifying the “abandoning of the shopping cart” pattern, the online store may design an application to identify a given sequence of events, such as (1) user login, (2) shopping cart update, (3) checkout, and followed by no action from the user in the next ten minutes. However, such pattern matching requires the online store to ask a software programmer to customize the application to handle the “abandoning of the shopping cart” pattern. In other systems, pattern matching is accomplished as a hindsight process by performing analysis during offline period and/or only after data from events is stored in a database or data warehouse.
These systems lack generic pattern recognition implementation to efficiently identify any given patterns from a series of events. In addition, customized codes or routines require existing systems to process correlation of event data and evaluation of patterns together. For example, in identifying a pattern, the existing systems wait for the occurrences of events to correlate data from events before determining whether a pattern has occurred. When a new pattern is to be evaluated, a new set of customized routines are needed to configure the existing system to evaluate the pattern.
Accordingly, a system and method for identifying a pattern in a plurality of events by monitoring incoming events and correlating monitored events are desired to address one or more of these and other disadvantages and shortcomings.